EclipseRCP 번들 네이티브코드 사용하기.(EclipseRCP  Bundle-NativeCode)[Bundle-NativeCode,이클립스 RCP,eclipse RCP]

이미지출처 : www.mobilefish.com

EclipseRCP 번들 네이티브코드 사용하기.(EclipseRCP  Bundle-NativeCode)







번들네이티브 코드는 무엇인가?



이클립스 RCP 환경에서 개발시에, 네이티브 코드 사용을 편리하게 하기위해,



manifest 파일에 사용할수 있도록 Bundle-NativeCode라는 헤더를 만들어 놨다.




어떻게 사용하는가?



예시)



LWJGL을 사용하기위해 번들화하여, 실행을 했는데,



분명 jar파일을 의존성에 추가했는데도 불구하고,아래와 같은 에러가 난다.



java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path



LWJGL 포럼을 찾아보니, 실행할때 자바 VM Arguments로 네이티브 코드의 패스를 넣어주라고 한다.



-Djava.library.path="native code path”



이때 물론 실핼할때마다 VM Arguments에 넣어줄 수도 있지만,



Manifest.MF 파일에 다음과 같이 추가해주면 같은 효과를 볼 수 있다.




Tip.



만약 No Bundle-NativeCode match 라는 에러를 만난다면? Alias를 사용하지말고 os.name 프로퍼티를 확인하여, 그대로 써보자.



If you meet error that “No Bundle-NativeCode match", recommand you just confirm os.name property and use it.



Code:



Bundle-NativeCode: native/windowslib.dll;

native/windowslib2.dll;

osname=Windows95; osname=Windows 95; osname=Win95;

osname=Windows98; osname=Windows 98; osname=Win98;

osname=WindowsNT; osname=Windows NT; osname=WinNT;

osname=WindowsCE; osname=Winndows CE; osname=WinCE;

osname=WindowsXP; osname=Windows XP; osname=WinXP;

osname=WindowsVista; osname=Windows Vista;

processor = i386; processor = x86

native/linuxlib.so;

osname=Linux; processor=x86

(processordef | osnamedef | osversiondef | languagedef)


Reference

secrets-of-bundle-nativecode

Processor aliases

OS aliases